Speech controlled access to content on a presentation medium

ABSTRACT

One embodiment of the invention provides television viewers with an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. In a further embodiment, a speech control interface, in combination with a variety of search functions, is provided such that television viewers have an intuitive and easy-to-use way to find the programs and information they want. The invention also provides the use of personalization as a way to filter and deliver relevant content and services to users based upon individual preferences. Another aspect of the invention provides a hierarchical user interface for speech-controlled, interactive applications, that gives television viewers an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. The invention also provides a method and apparatus where the channel lineup in a television service is dynamic and changeable, i.e. the list of available channels can be modified, in real time, to suit the preferences and usage of a particular subscriber. Further, the invention provides a method and apparatus that addresses the use of speaker, group, language, or emotional state identification systems to target advertising, to users who are or are not enrolled in a speaker ID system.

[0001] This application claims priority and incorporates by reference the Provisional Application No. 60/422,561, filed Oct. 31, 2002 and the Provisional Application No. 60/483,268, filed Jun. 26, 2003.

BACKGROUND OF THE INVENTION

[0002] 1. Technical Field

[0003] The invention relates to user access to content. More particularly, the invention relates to speech controlled access to content on a presentation medium.

[0004] 2. Description of the Prior Art

[0005] In recent years, the number of channel and program choices for cable and digital broadcast satellite subscribers has grown to the point where the television viewer is faced with a vast array of programming options. The breadth of service providers and depth and variety of content has made it more difficult for the television viewer to find the programs they want to watch. In the face of this challenge, the television viewing experience remains anchored in passive simplicity.

[0006] It would be advantageous to provide television viewers with an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience.

[0007] It would also be advantageous to provide a speech control interface, in combination with a variety of search functions, such that television viewers have an intuitive and easy-to-use way to find the programs and information they want.

[0008] It would also be advantageous to provide the use of personalization as a way to filter and deliver relevant content and services to users based on individual preferences.

[0009] It would also be advantageous to provide a hierarchical user interface for speech-controlled, interactive applications, that gives television viewers an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience.

[0010] Another problem exists in existing digital cable systems, where the channels that are available to watch in full screen TV and the program guide (the “channel lineup”) are fixed and non-changing, assuming that the channel lineup itself does not change. In current systems, when the channel up and down buttons are pressed, the user navigates through all channels of the entire channel lineup.

[0011] It would be further advantageous for the channel lineup to be dynamic and changeable, i.e. the list of available channels can be modified, in real time, to suit the preferences and usage of a particular subscriber.

[0012] There is also substantial prior art in the design of speech recognition systems, and in systems that identify the speaker, group, language, or emotional state associated with a given speech sample. There is also substantial prior art in selecting an advertising medium or vehicle to target a desired segment of the population.

[0013] It would be advantageous to provide a method and apparatus that addresses the use of speaker, group, language, or emotional state identification systems to target advertising, to users who are enrolled in a speaker ID system, by virtue of having previously supplied a voice sample to the system, or to users who are not so enrolled.

SUMMARY OF THE INVENTION

[0014] One embodiment of the invention provides television viewers with an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. In a further embodiment, a speech control interface, in combination with a variety of search functions, is provided such that television viewers have an intuitive and easy-to-use way to find the programs and information they want. The invention also provides the use of personalization as a way to filter and deliver relevant content and services to users based upon individual preferences. Another aspect of the invention provides a hierarchical user interface for speech-controlled, interactive applications, that gives television viewers an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. The invention also provides a method and apparatus where the channel lineup in a television service is dynamic and changeable, i.e. the list of available channels can be modified, in real time, to suit the preferences and usage of a particular subscriber. Further, the invention provides a method and apparatus that addresses the use of speaker, group, language, or emotional state identification systems to target advertising, to users who are or are not enrolled, by virtue of having previously provided a voice sample to the system.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015]FIG. 1 is a block schematic diagram that shows a speech controlled application environment according to the invention;

[0016]FIG. 2 is a block schematic diagram that shows the use of chained grammars to give users one-step access to application functionality according to the invention;

[0017]FIG. 3 is a block schematic diagram that shows the use of explicit linked navigation paths according to the invention;

[0018]FIG. 4 is a block schematic diagram that shows the use of implicit linked navigation paths according to the invention;

[0019]FIG. 5 is a block schematic diagram which shows exploratory search functionality according to the invention;

[0020]FIG. 6 is a block schematic diagram which shows step-by-step targeted search functionality according to the invention;

[0021]FIG. 7 is a block schematic diagram which shows one-step targeted search functionality according to the invention;

[0022]FIG. 8 is a block schematic diagram which shows a server centric speech control system overview, for example with which the invention may be implemented according to the invention;

[0023]FIG. 9 is a block schematic diagram that shows a personalization process flow according to the invention;

[0024]FIG. 10 is a block schematic diagram that shows a typical user interface for the path a user must follow to change a favorite channel setting;

[0025]FIG. 11 is a block schematic diagram which shows an example user interface for a chained command according to the invention;

[0026]FIG. 12 is a block schematic diagram which shows an example user interface for step-by-step functionality in a speech-enabled television context according to the invention;

[0027]FIG. 13 is a pictorial representation of feedback which appears in the info bar according to the invention;

[0028]FIG. 14 is a block schematic diagram that provides an illustration of dynamic channel lineup functionality according to the invention;

[0029]FIG. 15 is a block schematic diagram that shows a general system context for an embodiment of the invention in which advertising is directed to an individual by speaker identification, group identification, language identification, speaker emotional state, or general speech characteristics;

[0030]FIG. 16 is a block schematic diagram which shows a general structure of the pairing of a speaker identification model with personal identity according to the invention;

[0031]FIG. 17 is a block schematic diagram which shows the speaker ID enrollment process according to the invention;

[0032]FIG. 18 is a block schematic diagram which illustrates the simultaneous determination of both speaker identity and program selection or command information from one and the same utterance according to the invention;

[0033]FIG. 19 is a block schematic diagram which illustrates the pairing of a group identification model with group identity information according to the invention;

[0034]FIG. 20 is a block schematic diagram which illustrates the construction of a group identity model from a large collection of utterances from members of that group according to the invention; and

[0035]FIG. 21 is a block schematic diagram which shows simultaneous operation of speech recognition, speaker identification, and group identification systems according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0036] One embodiment of the invention provides television viewers with an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. In a further embodiment, a speech control interface, in combination with a variety of search functions, is provided such that television viewers have an intuitive and easy-to-use way to find the programs and information they want. The invention also provides the use of personalization as a way to filter and deliver relevant content and services to users based upon individual preferences. Another aspect of the invention provides a hierarchical user interface for speech-controlled, interactive applications, that gives television viewers an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. The invention also provides a method and apparatus where the channel lineup in a television service is dynamic and changeable, i.e. the list of available channels can be modified, in real time, to suit the preferences and usage of a particular subscriber. Further, the invention provides a method and apparatus that addresses the use of speaker, group, language, or emotional state identification systems to target advertising, to users who are or are not enrolled in a speaker ID system by virtue of having previously supplied a voice sample to the system (see below).

[0037] The foregoing embodiments of the invention are discussed in detail below:

Speech-optimized Information Architecture for Interactive Applications

[0038] This embodiment of the invention provides a method for constructing grammars for speech-controlled, interactive applications that provides television viewers with an intuitive and easy-to-use way to find the programs they want and to control their television viewing experience. An interactive application is one in which more than one party is an active participant. For this embodiment, one of the parties is human and the other is a software application. For a description of how to construct a grammar, see the tutorials on the VXML website, at http://www.voicexml.org/spec.html.

[0039] Grammars place constraints on the sequence of words allowed in utterances, which improves recognition performance. The number of words and phrases that are used to describe, for example, television-related content is so large that they must be carefully organized to give users high recognition accuracy when making verbal requests to control their television sets or to search for television-related information. This embodiment of the invention organizes the grammars in a way that provides high recognition accuracy for utterances from a large and continually expanding set of words and phrases. It does this without requiring users to provide samples of their voices ahead of time to train the system.

[0040] The information space is organized by information type, such as actor or TV program for television-related content. The following discussion describes how these information types can be used to create a scalable, flexible basis for developing interactive speech-controlled applications. The information architecture allows information to be linked or organized into a hierarchy, and gives the application access to the path that the user chose to navigate through the information. The information in the grammars can also be used to carry out requests initiated by buttons on a remote control or other such device.

[0041] Each speech-controlled application uses a set of commands initiated by either speech or input from a more traditional device, such as a remote control or pointing device. Speech commands are specified in a set of grammars. For the purposes of this discussion, grammars contain a set of items. Each item contains a word or phrase that can be spoken, an associated set of attributes that provide more information about the item, and optionally, the name of a grammar that must be imported to complete the utterance. A grammar also has an associated set of attributes that provide more information about the grammar as a whole.

[0042] Grammars that are largely composed of utterances that are used to control an application are referred to as command grammars in the rest of this disclosure, and grammars that contain multiple alternatives for a single piece of information, such as a set of actor names, are referred to as information-type specific grammars.

[0043] An information-type specific grammar may be linked to another grammar via a unique utterance, referred to as a keyword, that distinguishes this information type from any other. These grammars have an attribute that specifies this keyword, and the items in the grammar contain an attribute that identifies the item's information type.

[0044] Some speech commands may be chained together to provide one-step access to information or application functionality. The Chained Command attribute indicates that the utterance in an item is a part of a chained command. The Chained Command attribute may appear in both command and information-type specific grammars.

[0045] The keywords used to chain grammars together should be acoustically distinct. That is, the keywords should not sound similar to other keywords or other utterances in the grammars. The more distinct they are, the better recognition accuracy is.

[0046]FIG. 1 shows the application 14 environment 10. The numbered steps shown in FIG. 1 are as follows:

[0047] 1. The Context Manager 13 tells the Recognizer 12 to activate the appropriate grammars for the current context.

[0048] 2. The user 19 speaks a command, in this example, into a microphone 11.

[0049] 3. The Recognizer 12 returns the spoken command and all associated attributes to the Command Processor 15.

[0050] 4. The Command Processor 15 consults a Data Source 17, if necessary, to carry out the command.

[0051] 5. The Command Processor 15 updates the current context.

[0052] 6. The results of the command are output 18 to be shown to the user.

[0053] Note that user input may also be received from a pointing device or remote control.

[0054] In these cases, the input goes directly to the Command Processor. In this embodiment, Steps 4 through 6 complete the processing of the command.

[0055] Grammars constructed using this information architecture enable easy access to information hierarchies, allow multiple linked navigation paths, and facilitate the development of more flexible applications.

[0056] Hierarchy

[0057] Grammars can be linked into a hierarchy as follows:

[0058] An utterance that links two grammars is defined in the grammar in two parts. The first part is a keyword, for information-type specific grammars, or a command for command grammars. The contents of the grammar-to-be-linked are imported to include all of the alternatives for the second part of the utterance. As long as the keyword or command is not one of the items in the higher-level grammar, this ensures that linking the two grammars does not significantly degrade recognition accuracy.

[0059] Application Example

[0060] Application writers can chain grammars together to give users one-step access to application functionality. This is shown in FIG. 2. In this example, users can say “Set Options Favorite Channel 2” or “Set Options Favorite Category Sports” to change the setting in a single step. The user utterances invoke a top-level grammar 10, which links to a “Set” grammar 22, which links to an “Options” grammar 24, which links to a “Favorites” grammar 26, which links to a “Category” grammar. Thus, the values returned from the Recognizer in the first case are: “Set”, Chained Command, “Options”, Chained Command, “Favorite”, Chained Command, “Channel 2”, Channel Type. The values returned in the second case are: “Set”, Chained Command, “Options”, Chained Command, “Favorite”, Chained Command, “Category” Chained Command, “Sports”, Category Type.

[0061] Linked Navigation Paths

[0062] Grammars can link information-type specific information either explicitly or implicitly.

[0063] An application can predetermine the navigation path and link in all of the appropriate grammars. This is shown in FIG. 3, where the program information grammar 30 links the utterance “Robert Redford” to the “Robert Redford” programs grammar 32.

[0064] The application may also rely on the type attributes returned by the recognizer to determine which options to make available to the user next, as in FIG. 4.

[0065] The grammars shown in FIGS. 3 and 4 are composed of actor names, director names, and other program-related information that appears in program description information.

[0066] Application Example

[0067] The grammar in FIG. 4 does not specify what information the user wants about “Robert Redford.” In this case, the application determines which action to take based on the application context and the results returned from the recognizer. The application flow through FIG. 1 for this example is as follows:

[0068] 1. The Content Manager tells the Recognizer to activate the Program Information grammar.

[0069] 2. The user says “Robert Redford.”

[0070] 3. The Recognizer passes “Robert Redford” and Actor Type to the Command Processor.

[0071] 4. The Command Processor decides to get Robert Redford movies from a Data Source.

[0072] 5. A list of Robert Redford movies is displayed to the user.

[0073] This approach can also be used to support the “more like this” command. The recognizer returns “more like this,” and the application uses the currently selected item type to decide where to look for the information that the user wants.

[0074] Flexible Application Structure

[0075] This information architecture of the presently preferred embodiment can be used, for example, in two different ways to extend existing applications with minimal development effort.

[0076] First, some of the user interface for an application can be built dynamically from the data in the grammars. The grammars contain the structure of the speech commands for the application, and indicate when commands are chained. Grammars may be parsed to obtain this structure and the structure may be used to auto-generate some of the user interface for the application.

[0077] Second, it is easy to extend the content accessible via the application. A new link can easily be added to any of the chained commands.

[0078] Other Information

[0079] This invention has been reduced to practice via implementation in C-code, XML grammar files, compilation, and the generation of executable images for the AgileTV engine (AgileTV, Menlo Park, Calif.) to implement a very simple program name search. The program name keyword was added to a command grammar in an existing application, and the name of every program on the Palo Alto, Calif. cable television system in a two-week period was added to a program-specific grammar. The program-specific grammar contained approximately 7000 utterances, and recognition accuracy for the application as a whole was not significantly affected.

[0080] The method and system described above also has application in support of the following services:

[0081] Targeted Search

[0082] Exploratory Search

[0083] Dynamic Application Generation

Speech Controlled Starch

[0084] This embodiment of the invention provides a speech control interface in combination with a variety of search functions which provide television viewers with an intuitive and easy-to-use way to find the programs and information they want. Users typically search and/or discover new programs in one of two ways:

[0085] Exploratory Search—This search method is used when the television viewer is looking for something without a specific program or criteria in mind. The exploratory search methods support a more free-form type of discovery.

[0086] Targeted (or specifically directed) Search—This search method is used when the television viewer is looking for a particular item (program, movie, etc.) based on a specific attribute, such as sports team, actor, director, name,etc.

[0087] The specific method described in this document is designed to provide a simple user experience and maintain high recognition accuracy for the speech control interface.

[0088] Exploratory Search

[0089] Exploratory search is a method by which the user can find additional data with similar attributes to an already known piece of data. Within the space of television-related information, exploratory search allows users to find other programs related in some manner to a currently-selected program, such as finding more movies starring the same actor who is in a movie that the user is currently watching. This type of searching affords more free-form discovery, in that specific information types and items may not be known prior to the search. Exploratory searches are controlled with hierarchical or chained speech commands, or on-screen buttons. Results from exploratory searches are displayed in a list on the television screen.

[0090] Exploratory searches may be controlled explicitly or implicitly.

[0091] In an explicit exploratory search, the user specifies a particular information type by which the search should be performed. For example, while watching a movie on television, the user may ask for other movies by the same director using the appropriate speech command, e.g. “Ron Howard.” A list of movies by that particular director is then displayed in an on-screen list. Alternatively, while in the program guide, the user may ask to see other programs starring the same actor as is in the selected program.

[0092] Information types for explicit searches of television programs include, but are not limited to: Actor, Director, Writer, Creator, Episode, Date, Popularity (Nielsen), Quality (Editorial/Star Ratings).

[0093] In an implicit exploratory search, the user asks for more data related to the currently selected data. The specific information types are determined programmatically by the search application. For example, if program information for a movie is displayed, and the user performs an implicit exploratory search using the appropriate command, e.g. “more like this,” the search application finds other movies with similar information items, such as the same genre, director, or actors.

[0094] Another example of an exploratory search is a search that is based on recommendations. This search method is used when the television viewer chooses to rely on a trusted source for a recommendation, e.g. Ebert & Roeper's two-thumbs-up selections or The American Film Institute's Top 100 movies.

[0095] Targeted Search Criteria

[0096] Targeted search is a method by which the user can find specific data, such as program names and movie titles, according to particular criteria. Within the space of television-related information, targeted search allows users to find specific programs according to attributes of those programs. Using a Speech-Optimized Information Architecture and Hierarchical Speech UI (as described herein), the user initiates a targeted search by specifying an information type and one or more items of that type. The targeted search then returns programs that match the specified item or items in a list that is displayed on the television screen. The control of targeted search may be accomplished through both one-step, chained speech commands, as well as by progressive multi-step speech commands and on-screen buttons.

[0097] A targeted search may be performed on any data that belongs to one or more information types. Within the television space, information types include, but are not limited to: program name, genre, actor, director, writer, episode, date, popularity (Nielsen), quality (editorial, star rating), and subject matter rating (MPAA ratings and TV Ratings).

[0098] Using the Hierarchical Speech UI, targeted search is modeless, ubiquitous, and always accessible. It can be performed in any mode and on any screen. For example, if the user wants to see if any movies starring Mel Gibson are airing in the evening, the targeted search may be initiated while watching TV or in any screen in the program guide using the appropriate command, e.g. “Find Actor Mel Gibson.” Additionally, if the user wishes, targeted search may also be controlled through progressive search modes and screens that do not require the memorization of any commands or keywords.

[0099] Embodiments

[0100] Hierarchical Speech User Interface. When the search application is built on the hierarchical speech user interface, it provides modeless, ubiquitous one-step access to information content.

[0101] Speech-Optimized Information Architecture. This architecture organizes information content for flexible, intuitive access with high recognition accuracy.

[0102] Data Sources. A search can be built on any data source as long as information type information can be extracted. Exemplary data sources include:

[0103] Tribune Media Services.

[0104] Internet-based services, such as www.IMDB.com and www.allmusic.com.

[0105] Proprietary services such as Video on Demand databases.

[0106] Other, e.g. walled garden, news, editorial, etc.

[0107] Illustration of Exploratory Search Functionality

[0108]FIG. 5 is a block schematic diagram which shows exploratory search functionality. As shown in FIG. 5, a user begins at an initial program information screen 50. The user can explore directors 52 by entering a director name, and can retrieve program information on a particular movie 54 from a listing of movies made by that director. Likewise, the user may explore by actor name 51, 53; genre 56, 58; and writer name 55, 57. Those skilled in the art will appreciate that other categories may be provided as desired.

[0109] Example

[0110] 1. Initial program information screen 50.

[0111] 2. User initiates exploratory search (explicitly controlled) by asking for more movies by the same director 52.

[0112] 3. Application shows list of movies by director 54.

[0113] 4. User selects search result.

[0114] 5. Application shows new program information screen.

[0115] Illustrations of Targeted Search Functionality

[0116]FIGS. 6 and 7 are block schematic diagrams which show targeted search functionality.

[0117]FIG. 6 shows a step-by-step targeted search:

[0118] 1. Initial application mode 60.

[0119] 2. User initiates search with search command.

[0120] 3. Application displays all information types 62.

[0121] 4. User specifies information type.

[0122] 5. Application queries user for information item 64.

[0123] 6. User specifies information item.

[0124] 7. Application displays search results 66.

[0125] 8. The user selects search results.

[0126] 9. The application displays possible actions 68.

[0127]FIG. 7 shows a one-step targeted search:

[0128] 1. Initial application mode 70.

[0129] 2. User initiates search with chained search command.

[0130] 3. Application displays search results 72.

[0131] 4. Application displays possible actions 74.

[0132] The method and system described above has application in support of, for example, the following services:

[0133] Video-On-Demand services

[0134] Subscription-Video-On-Demand services

[0135] Everything-On-Demand services

[0136] Personal Video Recorder and Digital Video Recorder (PVR and DVR) appliances and services

[0137] Delivery of streaming audio

[0138] Delivery of information based services (News, Weather, Stocks, Reviews, Editorial, etc.)

Exemplary System

[0139]FIG. 8 is a block schematic diagram which shows a server centric speech control system overview, for example with which the various embodiments of the invention discussed herein invention may be implemented. FIG. 8 is best understood when considered along with FIG. 1.

[0140] A user utters commands via a voice link remote 81. These commands are received at a voice link receiver 82, which in the presently preferred embodiment, is coupled to a cable television set top box 83. The commands are processed and forwarded via a hybrid fiber-coax cable plant 84 to a return path receiver 85, such as that provided by AgileTV of Menlo Park, Calif. A processor, such as a Linux-based processor 86, supports speech recognition and processes the user's utterances into recognizable commands. A path back to the user for a system response is provided by a QAM modulator 87, such as manufactured by AgileTV of Menlo Park, Calif. The system, responsive to user commands thus received, accesses various forms of content for presentation to the user, such as a video-on-demand server 90, an interactive program guide server 89, or a walled garden server 88 which provides the user with various Internet applications.

[0141] Personalization Process, Personalized Program Lineup, Recommendations, and Interactive Television Services

[0142] This embodiment of the invention provides the use of personalization as a way to filter and deliver relevant content and services based on individual preferences. In turn, this limits the number of options faced by a user at any given point and simplifies the user experience. Voice recognition and the speech interface provide an intuitive way to navigate the interactive television interface and manage the thousands of options from which to choose.

[0143] The following steps are performed to provide a personalized experience to the individual television viewer:

[0144] 1. Preference Profile—in which a personal preference profile is created. A preference profile is established based on a variety of input sources including settings managed by the user, as well as behavioral analysis that occurs automatically and is transparent to the user.

[0145] 2. Identification—in which individual television viewers are identified based on unique vocal characteristics (speaker ID) or self-identification through use of a remote control and graphic user interface.

[0146] 3. Preference Matching—in which an individual preference file is matched to the individual television viewer and used to filter available programming choices and/or interactive television services.

[0147] 4. Presentation—in which the user interface, information services and/or programming choices are modified and personalized to the individual user based on the previous three steps.

[0148] Personalization Process Flow

[0149]FIG. 9 is a block schematic diagram that show a personalization process flow.

[0150] Step 1. Preference Profiling

[0151] To create a preference profile for an individual television viewer a variety of methods may be used, including the following:

[0152] User defined preference settings 91 in which the user self defines their profile by selecting favorite types of programs and/or attributes of programs. For example, users may choose a preferred subset of program categories, e.g. drama, sports, history, from a larger set as might be presented via a graphic user interface, menu system or settings selection screen. Users may also identify preferred programs based on popularity, e.g. Nielsen data, content ratings, e.g. G, PG, R, TVMA, etc., or quality ratings, e.g. 5-star Movies, also via graphic user interface. Options are controlled or selected by way of the voice user interface and/or remote control.

[0153] “Collaborative filtering” 95 in which individual preferences are automatically predicted based on viewing patterns and/or self defined user profile that identifies a user to have preferences in common with other groups of users. This is an automated process without exposure to the user that is controlled and managed in software.

[0154] Analysis of individual user behavior 92 based on frequency of program, channel and/or category request by way of the voice user interface.

[0155] Frequency with which specific scan categories are selected. For example, if a user frequently requests to “scan sports,” then it is assumed the user prefers sports related programs. This then becomes part of the user's “Preference Profile.”

[0156] Similarly, frequently requested programs or channels could be added to a “Preference Profile.”

[0157] Step 2. Identification

[0158] Identification of an individual viewer may be accomplished in one of two ways:

[0159] Self-selection 93, in which the user identifies himself by selecting his individual profile via input from the remote control and the graphic user interface.

[0160] Automatic identification of the television viewer 94 based on individual vocal characteristics (speaker ID). Following an enrollment step, comprising capture of a suitable speech sample and association with an individual user, the process of identification may take place without explicit action on the part of the user, as part of processing a spoken command. Normal usage of the voice control interface provides sufficient acoustic information for speaker identification to take place.

[0161] Individual users that are not recognized may still be grouped by gender and/or distinguished as an adult or child. This coarser form of identification may also be used to personalize the interface and recommended program content.

[0162] Step 3. Preference Matching

[0163] Preference matching takes place once the individual user has been identified or grouped and a preference profile is matched to the user and activated. This is a simple database matching procedure 96.

[0164] Step 4. Presentation

[0165] Presentation of personalized information is the final step in which programming content and/or interactive television services are displayed for the individual user via the graphic user interface and controlled via speech recognition. Personalized programming content and information services may take the following forms:

[0166] Personalized and/or recommended program lineup in which current or upcoming programs and/or movies are grouped and presented based on personal preferences and speaker identification 97. This information is displayed on the television screen in the form of a selectable list with a variety of actions possible including obtaining more information for the selected item. Information is presented via the graphic user interface in the following screens:

[0167] Recommended program lineup for a given viewing session would be created and personalized based on the preferences of the individual. An example of this is a list of programs targeted to the user based on individual preferences that would air within the next few hours.

[0168] A list of movies appearing in the upcoming week is another embodiment of a recommended and personalized list.

[0169] Personalized information services in which news, reviews and a variety of textual and visual editorial content may be presented and organized based on personal preferences and speaker identification. This information is presented via the graphic user interface in the following screens:

[0170] Entertainment news:

[0171] i. Breaking news stories about celebrities

[0172] ii. Movie news, e.g. “What's in theaters now”

[0173] Personalized television “Home Page” in which a combination of recommended programming and editorial content (reviews, etc.) and advertising is presented to the television viewer.

[0174] The method and system described above also has application in support of the following services:

[0175] Interactive Program Guides

[0176] Video-On-Demand services

[0177] Subscription-Video-On-Demand services

[0178] Everything-On-Demand services

[0179] Personal Video Recorder and Digital Video Recorder (PVR and DVR) appliances and services

[0180] Delivery of streaming audio

[0181] Delivery of information based services (News, Weather, Stocks, Reviews, Editorial, etc.)

Hierarchical User Interface for Speech-controlled Applications

[0182] This embodiment of the invention provides a hierarchical user interface for speech-controlled, interactive applications that provides television viewers with an intuitive and easy-to-use way to find the programs they want, and to control their television viewing experience. An interactive application is one in which more than one party is an active participant. For this disclosure, one of the parties is human and the other is a software application.

[0183] The hierarchical user interface provides modeless, ubiquitous, one-step access to information content and other application functionality via speech commands. It also discloses a graphical user interface that gives progressive disclosure to the same information content via input from more traditional sources such as a pointing device or remote control. Speech commands can also be used one at a time to follow the progressive disclosure path.

[0184] Each speech-controlled application uses a set of commands initiated by either speech or input from a more traditional device such as a remote control or pointing device. Speech commands are specified in a set of grammars. For a description of how to construct a grammar, see the tutorials on the VXML website, at http://www.voicexml.org/spec.html. For the purposes of this discussion, grammars contain a set of items. Each item contains a word or phrase that can be spoken, an associated set of attributes that provide more information about the item, and optionally, the name of a grammar that must be imported to complete the utterance. A grammar also has an associated set of attributes that provide more information about the grammar as a whole.

[0185]FIGS. 1 and 8 show the application environment. The steps shown in FIG. 1 are discussed above.

[0186] This embodiment of the invention allows information to be linked into a speech-accessible hierarchy. The hierarchy is implemented as a grammar. Any information or application functionality that should be ubiquitous, that is, available from any of the application screens or modes via speech commands, is described in grammars that are linked into the hierarchy.

[0187] The application then includes the hierarchy in the set of grammars activated by the Recognizer for any speech command. All of the speech commands contained in the hierarchy are then available from everywhere within the application. The reason for making commands ubiquitous is that it is frequently awkward to navigate to a user interface element with which the user wants to interact. The example in FIG. 10 shows a typical user interface for the path a user must follow to change a favorite channel setting, i.e. from a first menu 101, to a second menu 102, to a third menu 103 to a fourth menu 104.

[0188] In a hierarchical user interface, application settings can be implemented as chained commands linked into a hierarchy, e.g. from anywhere in the application, “Set Options Favorite Channel 2” to add the favorite channel in a single step. FIG. 2, discussed above, shows an example set of chained grammars. When the user utters a chained command, the application can skip intermediate steps. An example user interface for this chained command according to the invention is shown in FIG. 11. In FIG. 11, the user is in an initial application mode 110. The user initiates a set with a chained options command, and the application confirms the setting 111.

[0189] The graphical user interface can be constructed to mirror the structure of the hierarchy so that there is a visual element representing each command in the chain. To reflect the hierarchy, the visual elements are usually disclosed one at a time. When the user engages one of these visual elements, the visual element representing the next level in the hierarchy appears. The menu example in FIG. 10 is one user interface for showing progressive disclosure, but it is optimized for traditional, menu-driven applications.

[0190] An example user interface for the same step-by-step functionality in a speech-enabled television context is shown in FIG. 12. In FIG. 12, step-by-step option setting using individual commands begins in the initial application mode 120. The user initiates a set command and the application queries the user for the type of information the user would like to set 122. The user specifies an information type, and the application displays a list of items of that type 124. The user specifies an item, and the application queries the user for an item value 126. The user specifies the item value, and the application confirms the setting 128.

[0191] The grammars can also be constructed to allow the user to speak each of the commands in the chain as an individual command. At each link in the chain, both the top-level hierarchical grammar and a grammar for the sub-hierarchy that begins with the keyword for this level must be in the set of grammars activated by the Recognizer.

[0192] The visual elements representing the commands in a chain can take many different forms. They can be buttons, items in menus, or text in speech feedback given to the user. Each visual element should include the utterance used in the grammar so that when part of a chained command has been disclosed, the user can pick up where they left off in the chain. For example, if the user says “Find Sports” and then sees a visual element representing “Team,” he can then say “Team Bengals.” If these commands are spoken while the user is watching television, the feedback appears in an information bar, for example as shown in FIG. 13.

[0193] The hierarchical user interface also makes it easier for users to learn which speech commands are accessible in which application contexts.

[0194] The method and system described above also has application in support of the following services:

[0195] Exploratory Search

[0196] Targeted Search

[0197] Linked Navigation Paths

Dynamic Channel Lineup and Control Via Speech Commands

[0198] This embodiment of the invention provides for the channel lineup to be dynamic and changeable. That is, the list of available channels can be modified, in real time, to suit the preferences and usage of a particular subscriber.

[0199] A dynamic channel lineup allows the user to change the set of channels that are available to watch and to get program listings for. Channels can easily be removed and added to the channel lineup at any time using speech commands. The control of the dynamic channel lineup is immediate and modeless. That is, there is no need to change to a different mode or go to a particular setup screen to change the lineup. Control of a dynamic channel lineup could also be achieved with buttons.

[0200] Additionally, the control of the channel lineup allows both temporary and more permanent changes to the lineup. That is, some changes to the lineup can be engaged for a short period of time, such as one period of viewing, while other changes to the lineup remain in effect until they are disabled.

[0201] When a dynamic channel lineup is in effect and the user is watching TV, the channel navigation commands only show the channels within the dynamic lineup. When the user is in the program guide application, only listings for the channels in the dynamic lineup are shown.

[0202] There are five methods of controlling a dynamic channel lineup:

[0203] 1. Personal Channel Lineups

[0204] 2. Category Channel Lineups

[0205] 3. Channel, Program, Rating, and Category Blocks

[0206] 4. Atrophying Unwatched Channels

[0207] 5. Channel Lineup Reset

[0208] Personal Channel Lineups

[0209] By using the personal profiling and speaker identification technologies, individual users can create and use a personal channel lineup. This personal channel lineup is activated when the user issues the appropriate command, e.g. “show my channels.” If the user is enrolled in speaker identification and/or has a personal profile, the channel lineup is specific to that particular user. If the user is not enrolled in speaker identification or does not have a personal profile, a default, household channel lineup is activated.

[0210] Once the personal channel lineup is activated, only the channels that are included in the lineup are available. A user may add or remove channels from the personal lineup by issuing the appropriate commands, e.g. “add HBO”, “remove QVC.”

[0211] Particular programs can also be added to the personal lineup, in which case the associated channel is temporarily added to the personal lineup for the duration of the program.

[0212] Category Channel Lineups

[0213] A category channel lineup is created using particular categories of programs. The user activates the category channel lineup by issuing the appropriate command and a category name, e.g. “show movie programs.” Once the category lineup is in effect, only channels that are currently airing programs of the specified category are available.

[0214] Different types of program categories include:

[0215] Genre

[0216] Recommendations, based on:

[0217] Star ratings

[0218] Trusted sources

[0219] Program popularity

[0220] New releases

[0221] Of particular interest is a channel lineup comprised only of child-appropriate content. This channel iineup, called “Kids only,” consists of programs from child-related genres with an appropriate TV rating. The “Kids only” lineup acts as a default parental control. Parents need only to say the command, e.g. “Show Kids only,” to activate the Kids only lineup.

[0222] Category channel lineups may also consist of combinations of categories. Those categories may be related, such as family and comedy, or unrelated, such as baseball and fishing.

[0223] Channel. Program, Rating, and Category Blocks

[0224] There are four different methods of removing (“blocking”) programs and channels from a dynamic lineup:

[0225] by channel,

[0226] by program,

[0227] by rating, or

[0228] by category.

[0229] Each method, described below, either permanently or temporarily makes a channel unavailable while watching TV or viewing listings in the program guide application.

[0230] A particular channel may be globally removed from a dynamic channel lineup. When the Block command and the channel name, e.g. “block HBO,” is given, the specified channel is no longer available while watching TV or viewing listings in the program guide. Any channel may be blocked at any time, regardless of whether or not the channel is currently tuned to or selected with the program guide.

[0231] Channels may be unblocked by issuing the Unblock command and the channel name, e.g. “unblock HBO.”

[0232] Programs can be blocked using a similar mechanism as described above. When a program is blocked, e.g. “block Sex in the City,” the channel that it is airing on is unavailable for the duration of the program. As with channels, programs may be unblocked with the appropriate command (“unblock Sex in the City”).

[0233] Programs can also be blocked by a specified category, such as “adult” or “shopping,” or by a specified MPAA or TV rating, such as “PG-13” or “TV-R.” Category and rating blocks temporarily remove channels from the dynamic lineup when programs that match the category or rating are airing or are within the current program guide time slot. The channels remain unavailable for the duration of the program.

[0234] Blocks can either be persistent across other dynamic channel lineups, such as personal lineups or category lineups, or can be set independently within a personal channel lineup.

[0235] Atrophying Unwatched Channels

[0236] If channels are never watched for a particular time interval, such as four weeks, they can automatically be removed from the dynamic channel lineup. This control can also be forced by the user with the appropriate command, e.g. “remove unwatched channels.”

[0237] Channel Lineup Reset

[0238] The dynamic channel lineup can also be reset, causing all channels to become available. This global reset is activated by issuing the appropriate command (“reset all channels”).

[0239] The channel lineup reset may also be selectively applied to a personal channel lineup with a different command (“reset my channels”).

[0240]FIG. 14 is a block schematic diagram that provides an illustration of dynamic channel lineup functionality. Shown in FIG. 14 are examples personal channel lineups 140, category channel lineups 142, channel, program, rating, and category blocks 144, and atrophying unwatched channels 146. In each example, the full lineup is shown on the left of the figure and the dynamic lineup is shown on the right of the figure. Further, items that have been dynamically removed from the full lineup are shown in the full lineup in gray.

Advertising Directed by Speaker Identification, Group Identification, Language Identification, Speaker Emotional State, or General Speech Characteristics

[0241] This embodiment provides a method and apparatus that addresses the use of speaker, group, language, or emotional state identification systems to target advertising, to either enrolled or unenrolled users of a content presentation system. The invention pertains to improving the effectiveness of electronic advertising, typically though not exclusively when presented to the consumer via television, or via a computer connected to the Internet. Specifically, the invention applies to the case where this presentation medium, i.e. the television, Internet-connected computer, etc., is controlled by spoken command.

[0242] Control by spoken command may be achieved through use of a speech recognition system, which processes an electronic representation of an audio signal, uttered by the user, into corresponding text, or into an associated signal that controls the presentation medium, i.e. tuning the television to a selected program, or causing the Internet-connected computer to display a selected Web page. It is key that the same information that is present in the audio signal, which can be processed to determine the spoken words or command, can also be used to determine the identity of the speaker. This latter determination is made by a speaker identification system.

[0243] The general context of this invention is shown in FIG. 15, which is a block schematic diagram that shows general system context. Those skilled in the art will appreciate that the functionality necessary to implement this embodiment of the invention may be provided at any appropriate location within a system. Accordingly, the following discussion is in no way tended to limit the scope of the invention. This figure shows the variety and flow of information present in the system, and exhibits the processing of a given utterance 1001 to control both the program and advertisement stream 1006. In FIG. 15, the speaker command passes through a signal path that includes a microphone 1002 which produces a transduced speech signal 1003, which signal is coupled to an encoder/decoder 1004 associated with a television or personal computer 1005. The encoder/decoder presents a program and advertisement stream 1006 to the television/personal computer and outputs a speech signal and control signals 1007 to a speech recognition system 1008 and speaker identification system 1009, which output decoded commands 1012 and speaker identity 1014, respectively. A database containing models and identity information 1010 is queried by the speaker identification module, and as well receives update information there from 1016; and provides model and identity information 1013 responsive thereto. Speaker identity information thus derived from the speech signal, and decoded commands, are provided to a programming source and advertisement library 1011, resulting in a stream of user tailored programming and advertisements 1015 which are sent to the encoder decoder for display to the user.

[0244] Typically, though as detailed below not exclusively, a person wishing to use a speaker identification system.(also known as a speaker ID system) first provides a sample of his speech, and associates this speech sample with his personal identity, i.e. a name, credit card number, or other personal information. This process is known as enrollment. Thereafter, when the enrollee speaks to the speech processing apparatus, both the text corresponding to the utterance, and the identity of the speaker, is determined by the combined operation of the speech recognition and speaker identification systems. The mathematical representation of the enrollment data, which may be used to identify the speaker, is called a speaker identification model.

[0245] The general structure of the pairing of a speaker identification model with personal identity is illustrated in FIG. 16, which shows a general speaker identification model and personal identity structure. The speaker identification model 2003 is a mathematical function, which takes as input a representation 2004 of a given utterance, and a placeholder for a particular speaker 2005 and returns a real number, the value of the function, which is the likelihood that the given utterance was spoken by the particular speaker. The speaker identification model thus described 2001 is combined with personal identity information 2002 to provide a pairing of the speaker identification model with the personal identity information 2006.

[0246] The appeal of a speaker identification system is that it provides a secure and easy means for a user to authorize and control access to the presentation medium in question (television, computer, etc). Thus the user is likely to wish to enroll.

[0247]FIG. 17, Speaker ID Enrollment Process, is a block schematic diagram which illustrates the process whereby a speaker 3001 supplies an enrollment speech sample or samples 3002, to a microphone 3003, which is transduced into a speech signal 3004, provided to an audio data capture system 3005, transduced and processed in a speech signal and, along with the personal identity model of the speaker 3007, is applied to a speaker model construction system 3008. The resulting speaker identity model and personal identity information 3009 is then processed into a speaker identity model 3010. As discussed above, this model is paired with personal identity information 3011, obtained by some other means, and the pair 3012 is stored for future reference.

[0248] It is important to note that, after enrollment, a user's command utterance provides both command and control information, for example, selection of the program that the television is to tune to, and also the identity of the speaker. No special action by the user is required after the enrollment stage. The identity of the speaker is determined and reconfirmed with each command utterance. This identification is performed for each utterance, in a manner that is transparent to the user.

[0249]FIG. 18, Operation of Speech Recognition and Speaker ID Systems, is a block schematic diagram which illustrates the simultaneous determination of both speaker identity 4009 and program selection or command 4011 information, from one and the same utterance 4002. When the speaker 4001 makes an utterance 4002, the utterance is received at a microphone 4003 which produces a transduced speech signal 4004. The speech signal is coupled to an audio data capture facility 4005, such as an encoder/decoder, and the transduced and processed speech signal 4006 is routed to a speaker identification system 4006 and a speech recognition system 4010. The speech recognition system produces program selection and/or command information 4011, which is both output and which is also routed to one or more speaker identification model/personal identity pairs 4007 as update information 4012.

[0250] Users who have participated in the enrollment process are referred to as enrolled speakers. All others are referred to as unenrolled speakers.

[0251] Problem Identification

[0252] One problem addressed by this invention is improving the effectiveness of electronic advertising. Advertising in general is a mass medium, which is to say that its message is widely disseminated throughout the consumer population. As such, it is inefficient, because the advertiser pays to blanket the entire audience with a commercial or political message, whereas only a small fraction of the audience may have the means or desire to respond to the message. For instance, a political message impelling voters to elect this or that candidate is wasted on viewers of the advertisement who are too young to vote.

[0253] For this reason, advertisers typically aim to promote their products or ideas through a means that is watched or used by a population that most closely matches the intended recipient of the advertising message. Thus, children's toys are advertised on television programs that are watched by primarily by children, beer commercials are shown on sports programs, and so on.

[0254] However, this selection mechanism, which is based on the general demographic appeal of the content being viewed, is less refined than might be desired. This embodiment of the invention provides a method for achieving far higher accuracy and precision in targeting of advertising.

[0255] Exemplary Embodiment

[0256] The exemplary embodiment of the invention consists of targeting advertising content to individual users, as determined by the speaker identification system. In the context associated with this invention, the speech recognition system is used to select the content that the user wishes to experience, i.e. a television program, an audio stream of a particular genre, and so on. The pauses or interruptions present in this program or stream may then be filled with advertising messages that are targeted to the characteristics of the individual user who made the program selection.

[0257] This system permits the targeting of advertising by age, gender, income level, residential address, and other information that is highly pertinent, from the advertiser's point of view. This is because the speaker ID enrollment process typically, though not necessarily, links the user's audio sample with pertinent demographic or financial information, such as age, gender, home address, credit card number, and so on. Thus, for example, it would be possible for advertisers to ensure that their message is viewed by all households, and only those households, where an adult with a credit card credit debt limit of $10,000 or more is currently watching the television.

[0258] Discussion, Refinement and Extensions

[0259] The following are alternative embodiments of the invention, as presented above.

[0260] Targeting of Advertising without Speaker Identification Enrollment.

[0261] The system as described above assumes that an individual user has performed speaker ID enrollment, as defined in the opening paragraphs of this disclosure. However, it is possible to apply the same general idea in the absence of enrollment. This is because it is frequently possible to make an approximate determination of a speaker's age and gender, even absent an enrollment process. This mode of usage does not provide the individual targeting described above, but it still provides some of the audience focus that an advertiser seeks.

[0262] Targeting in the absence of enrollment is achieved by collecting samples of speech of adult males, adult females, adolescent males, adolescent females, and so on from the general population, and then building a general adult male speaker identification model, a general adult female speaker identification model, and so on.

[0263]FIG. 19, General Group Identification Model and Group Identity Structure, is a block schematic diagram which illustrates the pairing 5006 of a group identification model 5001, comprising a group identification model function 5003, a placeholder for a representation of an acoustic signal 5004, and a placeholder for a group identity 5005, with group identity information 5002.

[0264]FIG. 20, Construction of Group ID Model, is a block schematic diagram which illustrates the construction of a group identity model 6006 from a large collection of utterances 6001 from members of that group. A speaker identification model construction module 6003 receives information on the characteristics and identity of a group 6004 and transduced speech signals for members of the group 6002 and produces therefrom a group identification model and group identity information 6005, resulting in a pairing of the group identification model with group identity information 6008. In operation, the model that matches an utterance from some unenrolled user most closely is then used to provide a guess as to the user's demographic characteristics.

[0265] As indicated in FIG. 21, which is a block schematic diagram which shows simultaneous operation of speech recognition, speaker identification, and group identification systems, both enrolled and unenrolled modes of operation may be invoked simultaneously. If the speaker identification system 7007 indicates that the speaker is not enrolled, then the result 7010 of the group identification system 7013 may be used, to provide a less refined means of targeting advertising. In FIG. 21, a speaker 6001 makes utterances 7002 which are received at a microphone. 7003 and routed as transduced utterances 7004 to an audio data capture module 7014, such as an encoder/decoder. The audio capture module outputs the transduced/processed utterances 7005 and provides same to a speaker identification system 7007 comprising multiple speaker identification models 7006, and which produces an output comprising speaker identity or an indication that the speaker is not enrolled 7008; a speech recognition system 7012, that produces an output comprising a program selection or a command; and the group identification system 7013, which comprises a multitude of group identification models 7011, and which produces an output which comprises group identity or an indication that the speaker does not fall into an identifiable group.

[0266] Targeting of Advertising Based upon Emotional State.

[0267] By analyzing a spoken utterance for pacing, stress patterns, spectral distribution of acoustic energy and other elements, it is possible to make an approximate determination of a user's emotional state. Again, this can be valuable information to an advertiser. An individual who is agitated could be shown advertisements for stress-reducing products (herbal teas, spa visits, vacations, and so on). Those in an emotional state that is associated with an increased propensity to make major purchases could be shown advertisements for expensive or luxury items.

[0268] Targeting of Advertising Based upon Language.

[0269] In a further extension of this idea, it is possible to determine, again by analysis of the acoustic signal, the language in which a given utterance is spoken (English, Spanish, Hindi, etc). When the language of the speaker has been identified, an advertisement in that same language, and/or with content targeting speakers of that language, may then be presented to the user, at an appropriate interval. Thus for instance, Spanish speakers may be presented a Spanish-language version of an automobile commercial, or Hindi speakers may be presented advertisements for reduced-price air fares to and from the Indian subcontinent.

[0270] Combination with other Modes of Demographic Targeting.

[0271] It is well-known that the audience of particular television programs, or the users of particular Internet sites, may constitute a population segment that is sought by a particular advertiser. Indeed, this is the basis for many current techniques for demographic modeling. In a further extension of these ideas, by tracking the television program or website selections of an individual user, where that user has enrolled in the speaker identification system, and it is permissible by statute or explicit granting of permission by the user for this information to be recorded, it is possible to create an even more detailed demographic portrait of the user. Thus for instance, it would be possible for an advertiser to target all 35-to-45-year-old males who are frequent viewers of the television programs The West Wing and E.R.

[0272] Use of Blind (Unenrolled) Individual Speaker Identification.

[0273] As observed above, in general a speaker identification system requires that a user participate in an enrollment process, to capture a sample of the user's speech, and associate it with personal identity information. However, given sufficient acoustic data, captured through ordinary operation of the system by spoken command, as opposed to explicit enrollment, it is possible to distinguish among the individual users of the system, and build speaker identification models for them. These models do not have explicit personal identity information associated with them, by which is meant name, credit card number, etc. However, they nevertheless function to distinguish one frequent user of the system from another. Note that this differs from merely identifying the group to which a speaker belongs, as discussed above in connection with Targeting of Advertising without Speaker Identification Enrollment.

[0274] With this identification in hand, and to the extent that it is permissible by statute or explicit granting of permission by the user for this information to be recorded, a television or Internet selection history for such individual users may be created. This may be supplemented with a plausible guess of the user's gender, approximate age, and so on, by the methods previously described. In this way, a detailed demographic portrait of an individual user may be created, even absent explicit enrollment in the speaker identification system.

[0275] General Speech Characteristics.

[0276] To the extent that any other desirable identifying characteristic, from the standpoint of efficacy of advertising, may be extracted from a speech signal, this system may be extended to incorporate use of that characteristic, for the purpose of targeting advertising.

[0277] Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below. 

1. A speech-optimized information apparatus for speech-controlled interactive applications, comprising: a plurality of grammars for placing constraints on a sequence of words allowed in user utterances made in connection with user application interaction; and means for organizing said grammars to provide high recognition accuracy for said user utterances from a large and continually expanding set of words and phrases without requiring users to provide samples of their voices ahead of time for training.
 2. The apparatus of claim 1, said plurality of grammars further comprising: a user application interaction information space organized by information type.
 3. The apparatus of claim 2, said information space further comprising: means for allowing user accessible information to be linked or organized into a hierarchy; and means for establishing a user chosen path to navigate through said information.
 4. The apparatus of claim 1, wherein information in said grammars is used to carry out requests initiated by buttons on a remote control or other such device.
 5. A method for speech control of interactive applications, comprising the steps of: providing at least one speech-controlled application that uses a set of commands initiated by either speech or, optionally, by input from a device; providing a set of grammars, composed of utterances, in which speech commands are specified, wherein said grammars comprise: a set of items, wherein each item comprises a word or phrase that can be spoken; an associated set of attributes that provide more information about said item; an associated set of attributes that provide more information about said grammar as a whole; and optionally, a name of a grammar that must be imported to complete an utterance.
 6. The method of claim 5, wherein at least one grammar comprises a command grammar for utterances that are used to control said application.
 7. The method of claim 5, wherein at least one grammar comprises an information-type specific grammar comprising multiple alternatives for a single piece of information.
 8. The method of claim 7, wherein said information-type specific grammar is linked to another grammar via a unique utterance (keyword) that distinguishes an information type from any other information type.
 9. The method of claim 8, wherein said information-type specific grammar comprises an attribute that specifies a keyword; and wherein items in said information-type specific grammar comprise an attribute that identifies said item's information type.
 10. The method of claim 5, further comprising the step of: providing a chained command attribute indicates that an utterance in an item is a part of a chained command; wherein speech commands are chained together to provide one-step access to information or application functionality.
 11. A method for speech control of interactive applications, comprising the steps of: providing a recognizer; providing a command processor; providing a context manager; providing a data source; said context manager communicating with said recognizer to activate appropriate grammars for a current context; said user speaking a command; said recognizer returning said spoken command and all associated attributes to said command processor; said command processor accessing said data source, as necessary, to carry out said command; said command processor updating a current context; and outputting results of said command.
 12. A method for linking grammars into a hierarchy, comprising the steps of: defining an utterance that links two grammars in two parts; wherein a first part is a keyword, for information-type specific grammars, or a command for command grammars; and wherein contents of said grammar-to-be-linked are imported to include all alternatives for a second part of said utterance.
 13. The method of claim 13, wherein said grammars link information-type specific information either explicitly or implicitly.
 14. The method of claim 13, wherein an application predetermines a navigation path and link in all appropriate grammars.
 15. The method of claim 13, wherein an application relies on type attributes returned to determine which options to make available to a user next.
 16. An apparatus for speech control of interactive applications, comprising: at least one speech-controlled application that uses a set of commands initiated by either speech or, optionally, by input from a device; a set of grammars, composed of utterances, in which speech commands are specified, wherein said grammars comprise: a set of items, wherein each item comprises a word or phrase that can be spoken; an associated set of attributes that provide more information about said item; an associated set of attributes that provide more information about said grammar as a whole; and optionally, a name of a grammar that must be imported to complete an utterance.
 17. The apparatus of claim 16, wherein at least one grammar comprises a command grammar for utterances that are used to control said application.
 18. The apparatus of claim 16, wherein at least one grammar comprises an information-type specific grammar comprising multiple alternatives for a single piece of information.
 19. The apparatus of claim 18, wherein said information-type specific grammar is linked to another grammar via a unique utterance (keyword) that distinguishes an information type from any other information type.
 20. The apparatus of claim 19, wherein said information-type specific grammar comprises an attribute that specifies a keyword; and wherein items in said information-type specific grammar comprise an attribute that identifies said item's information type.
 21. The apparatus of claim 16, further comprising: a chained command attribute indicates that an utterance in an item is a part of a chained command; wherein speech commands are chained together to provide one-step access to information or application functionality.
 22. The apparatus of claim 16, further comprising: means for processing a “more like this” command for using a currently selected item type to decide where to look for information that a user wants.
 23. An apparatus for speech control of interactive applications, comprising: a data source; a context manager, said context manager communicating with a recognizer to activate appropriate grammars for a current context; a recognizer, said recognizer returning a spoken command and all associated attributes to a command processor; a command processor, said command processor accessing said data source, as necessary, to carry out said spoken command, said command processor updating a current context and outputting results of said command.
 24. The apparatus of claim 23, wherein said spoken command effects any of: a targeted search; an exploratory search; and dynamic application generation.
 25. An apparatus for linking grammars into a hierarchy, comprising: at least one speech-controlled application that uses a set of commands initiated by either speech or, optionally, by input from a device; a set of grammars, composed of utterances, in which speech commands are specified, wherein said grammars comprise: a set of items, wherein each item comprises a word or phrase that can be spoken; an associated set of attributes that provide more information about said item; an associated set of attributes that provide more information about said grammar as a whole; and wherein an utterance links two grammars in two parts: wherein a first part is a keyword, for information-type specific grammars, or a command for command grammars; and wherein contents of said grammar-to-be-linked are imported to include all alternatives for a second part of said utterance.
 26. The apparatus of claim 25, wherein said grammars link information-type specific information either explicitly or implicitly.
 27. The apparatus of claim 25, wherein an application predetermines a navigation path and link in all appropriate grammars.
 28. The apparatus of claim 25, wherein an application relies on type attributes returned to determine which options to make available to a user next.
 29. The apparatus of claim 25, further comprising: means for processing a “more like this” command for using a currently selected item type to decide where to look for information that a user wants.
 30. An apparatus for dynamically constructing a user interface for a speech-controlled application, comprising: a plurality of grammars comprising a structure of speech commands for said application; said grammars further comprising means for indicating when commands are chained; means for parsing said grammars to obtain said structure; and means for using said parsed structure to auto-generate at least some of said user interface for said application. 